<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>aws-crt-cpp: Aws::Crt::Http::HttpClientConnectionManager Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">aws-crt-cpp
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceAws.html">Aws</a></li><li class="navelem"><a class="el" href="namespaceAws_1_1Crt.html">Crt</a></li><li class="navelem"><a class="el" href="namespaceAws_1_1Crt_1_1Http.html">Http</a></li><li class="navelem"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html">HttpClientConnectionManager</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Aws::Crt::Http::HttpClientConnectionManager Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="HttpConnectionManager_8h_source.html">HttpConnectionManager.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Aws::Crt::Http::HttpClientConnectionManager:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3ce78ad105347c7268ef0ebc06343702"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html#a3ce78ad105347c7268ef0ebc06343702">~HttpClientConnectionManager</a> ()</td></tr>
<tr class="separator:a3ce78ad105347c7268ef0ebc06343702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a999fd4f1158b5efdf0c202ecd37d2030"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html#a999fd4f1158b5efdf0c202ecd37d2030">AcquireConnection</a> (const <a class="el" href="namespaceAws_1_1Crt_1_1Http.html#abf17b6f7768fa03af126b8c812ef9bd1">OnClientConnectionAvailable</a> &amp;onClientConnectionAvailable) noexcept</td></tr>
<tr class="separator:a999fd4f1158b5efdf0c202ecd37d2030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a6f7601af6e8f980a5b505760c9dd4"><td class="memItemLeft" align="right" valign="top">std::future&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html#a24a6f7601af6e8f980a5b505760c9dd4">InitiateShutdown</a> () noexcept</td></tr>
<tr class="separator:a24a6f7601af6e8f980a5b505760c9dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a83d183a7fe35511db52f8085a1bfe817"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html">HttpClientConnectionManager</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html#a83d183a7fe35511db52f8085a1bfe817">NewClientConnectionManager</a> (const <a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManagerOptions.html">HttpClientConnectionManagerOptions</a> &amp;connectionManagerOptions, <a class="el" href="namespaceAws_1_1Crt.html#a3c9efb213e2de565038afcfd4f8afcda">Allocator</a> *allocator=<a class="el" href="namespaceAws_1_1Crt.html#a7178ef65f261a8db52a624458331bbb2">g_allocator</a>) noexcept</td></tr>
<tr class="separator:a83d183a7fe35511db52f8085a1bfe817"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:af8a15107ebe7178044a1fc62d0ee5bcd"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html#af8a15107ebe7178044a1fc62d0ee5bcd">ManagedConnection</a></td></tr>
<tr class="separator:af8a15107ebe7178044a1fc62d0ee5bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Manages a pool of connections to a specific endpoint using the same socket and tls options. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3ce78ad105347c7268ef0ebc06343702"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ce78ad105347c7268ef0ebc06343702">&#9670;&nbsp;</a></span>~HttpClientConnectionManager()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Aws::Crt::Http::HttpClientConnectionManager::~HttpClientConnectionManager </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a999fd4f1158b5efdf0c202ecd37d2030"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a999fd4f1158b5efdf0c202ecd37d2030">&#9670;&nbsp;</a></span>AcquireConnection()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Aws::Crt::Http::HttpClientConnectionManager::AcquireConnection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAws_1_1Crt_1_1Http.html#abf17b6f7768fa03af126b8c812ef9bd1">OnClientConnectionAvailable</a> &amp;&#160;</td>
          <td class="paramname"><em>onClientConnectionAvailable</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Acquires a connection from the pool. onClientConnectionAvailable will be invoked upon an available connection. Returns true if the connection request was successfully queued, returns false if it failed. On failure, onClientConnectionAvailable will not be invoked. After receiving a connection, it will automatically be cleaned up when your last reference to the shared_ptr is released. </p>

</div>
</div>
<a id="a24a6f7601af6e8f980a5b505760c9dd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24a6f7601af6e8f980a5b505760c9dd4">&#9670;&nbsp;</a></span>InitiateShutdown()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::future&lt; void &gt; Aws::Crt::Http::HttpClientConnectionManager::InitiateShutdown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Starts shutdown of the connection manager. Returns a future to the connection manager's shutdown process. If EnableBlockingDestruct was enabled on the connection manager options, calling get() on the returned future will block until the last connection is released. If the option is not set, get() will immediately return. </p>

</div>
</div>
<a id="a83d183a7fe35511db52f8085a1bfe817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83d183a7fe35511db52f8085a1bfe817">&#9670;&nbsp;</a></span>NewClientConnectionManager()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt; <a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManager.html">HttpClientConnectionManager</a> &gt; Aws::Crt::Http::HttpClientConnectionManager::NewClientConnectionManager </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classAws_1_1Crt_1_1Http_1_1HttpClientConnectionManagerOptions.html">HttpClientConnectionManagerOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>connectionManagerOptions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAws_1_1Crt.html#a3c9efb213e2de565038afcfd4f8afcda">Allocator</a> *&#160;</td>
          <td class="paramname"><em>allocator</em> = <code><a class="el" href="namespaceAws_1_1Crt.html#a7178ef65f261a8db52a624458331bbb2">g_allocator</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Factory function for connection managers </p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="af8a15107ebe7178044a1fc62d0ee5bcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8a15107ebe7178044a1fc62d0ee5bcd">&#9670;&nbsp;</a></span>ManagedConnection</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classAws_1_1Crt_1_1Http_1_1ManagedConnection.html">ManagedConnection</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/ANT.AMAZON.COM/dengket/doc/aws-crt-cpp/include/aws/crt/http/<a class="el" href="HttpConnectionManager_8h_source.html">HttpConnectionManager.h</a></li>
<li>/home/ANT.AMAZON.COM/dengket/doc/aws-crt-cpp/source/http/<a class="el" href="HttpConnectionManager_8cpp.html">HttpConnectionManager.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
